public class Demo {
        public static void main(String[] args) {
            Integer i1 = 128;
            Integer i2 = 128;
            System.out.print((i1 == i2) + ",");
            String i3 = "100";
            String i4 = "1" + new String("00");
            System.out.print((i3 == i4) + ",");
            Integer i5 = 100;
            Integer i6 = 100;
            System.out.println((i5 == i6));
        }
    }//其实当我们在为Integer赋值的时候，java编译器会将其翻译成调用valueOf()方法。比如Integer i=127翻译为Integer i=Integer.valueOf(127)
//对于-128到127之间的数，Java会对其进行缓存。而超出这个范围则新建一个对象。
// i1和i2为128，超出范围，所以都需要新建对象，对象比较为false；
//i5和i6为100，在范围之内，在执行Integer i5=100时，就会直接缓存到内存中，但执行执行Integer i6=100时，就直接从缓存里取，而不需要新建对象，所以为true。 (类似与字符串常量池)

